<?php

# -- DÉBUT NOTE DE LICENCE -------------------------------------
#
# Ce fichier fait partie de Clicpage.
#
# Copyright (c) 2010 Francois (www.clicpage.net)
# Distribué selon les termes de la licence GPL version 2.0.
# Consultez le fichier LICENCE ou
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- FIN NOTE DE LICENCE ---------------------------------------

class cpModuleModifierPage extends cpModuleAdmin
{
	
	
	
	
	
	protected $page;
	
	
	
	
	
	/// @name Initialisation
	//@{
	
	
	public function __construct($core)
	{
		
		parent::__construct($core);

		if(empty($_GET['page_id'])) {
			http::redirect('index.php?module=pages');
		}
		
		$this->page = $this->core->site->getPages(array('page_id' => (integer) $_GET['page_id']), CP_GET_STATIC, CP_TEMPORAIRE);
		
		if($this->page->isEmpty()) {
			http::redirect('index.php?module=pages');
		}
		
		$this->setTitreModule(__('Éditer la page'));

		# Lien remonter		
		if($_GET['ref'] == '1' && !empty($_SERVER['HTTP_REFERER'])) {
			
			$ref = parse_url($_SERVER['HTTP_REFERER']);
			
			$curHost = http::getHost();
			$refHost = $ref['scheme'].'://'.$ref['host'];
			
			$curPath = substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], '?'));
			$refPath = $ref['path'];

			if($curHost == $refHost && $curPath == $refPath) {
				$_SESSION['prev']['pages'][$this->page->page_id] = substr($ref['query'], strpos($ref['query'], '=')+1);
			}
		
		}
		if(!empty($_SESSION['prev']['pages'][$this->page->page_id])) {
			$this->setPrev($_SESSION['prev']['pages'][$this->page->page_id], 'Pages');
		} else {
			$this->setPrev('pages&cat_id='.$this->page->cat_id, __('Pages'));
		}
		
		$this->page->preparerModule($this);
		
	}
	//@}
    
	
	

	
	/// @name Formulaires
	//@{
	
	
	public function traiterFormulaire()
	{

		if(!empty($_POST['action']) && in_array($_POST['action'], $this->actionsAutorisees))
		{
			
			# Permission nécessaire: pages
			$this->core->auth->verifierPermission('pages', true);
			
			# Si l'utilisateur actuel n'est pas l'auteur de la page
			if($this->page->utilisateur_id != $this->core->auth->getUtilisateurID()) {
				# Permission nécessaire: toutesPages
				$this->core->auth->verifierPermission('toutesPages', true);
			}
			
			# Vérification du nonce
			if($this->core->verifierNonce($_POST['action'], $_POST['nonce'])) {

				$this->core->detruireNonce($_POST['action']);

				$nomFonction = 'action_'.$_POST['action'];
				
				try {
					$this->page->$nomFonction($this);
				} catch (cpErreur $e) {
					if($e->getCode() >= 100 && $e->getCode() <= 199) {
						$this->ajouterErreurFormulaire($e->getChamp(), $e->getMessage());
					} else {
						$this->erreurGenerale($e);
					}
				}
				
			}
			
		}

	}
	//@} 
    
	

	
	
	/// @name Interface du module
	//@{
	
	
	public function interfaceModule()
	{
		return $this->page->adminBody($this);
	}
	
	
	public function head()
	{
		
		# URL de la page de tags
		$rs = $this->core->site->getPages(array('page_generateur' => 'tags', 'page_statut' => CP_STATUT_ONLINE, 'limit' => 1), CP_GET_RS);
		$url_tags = $rs->isEmpty() ? 'tags' : $rs->page_url;
		
		# Redirection vers l'aperçu
		if($_POST['apercu'] == '1' && !$this->erreursFormulairePresentes()) {
			$apercu = 'window.open("'.CP_URL_PUBLIQUE.$this->page->page_url.'?apercu=1", "apercu", "");';
		} else {
			$apercu = '';
		}
		
		# Code head
		return
		'<script type="text/javascript" src="js/tinymce/tiny_mce.js"></script>'.
		'<script type="text/javascript" language="javascript">
			var urlThemes = "'.CP_URL_THEMES.'";
			var urlTags = "'.CP_URL_PUBLIQUE.$url_tags.'";
			var defaultTheme = "'.$this->core->site->getPropriete('site_theme').'";
			'.$apercu.'
		</script>'.
		$this->page->adminHead();
	}
	//@}

	
}

?>